#ifndef GDN_TEXT_H
#define GDN_TEXT_H

#include <SFML/Graphics.hpp>

#include "gdn/Font.h"
#include "gdn/Color.h"
#include "gdn/Vector2.h"
#include "gdn/Rectangle.h"

namespace gdn
{
	class Window;
	class RenderImage;

	class Text
	{
		public:
			Text();

			void SetString( const std::string& theString );
			std::string GetString() const;

			void SetFont( const Font& theFont );
			const Font& GetFont() const;

			void SetColor( const Color& theColor );
			Color GetColor() const;

			void SetCharacterSize( unsigned int theSize );
			unsigned int SetCharacterSize() const;

			Rectanglef GetRectangle() const;


			void SetPosition( float theX, float theY );
			void SetPosition( const Vector2f& thePos );
			Vector2f GetPosition() const;

			void SetRotation( float degrees );
			float GetRotation() const;

			void SetScale( float theX, float theY );
			void SetScale( const Vector2f& theScale );
			Vector2f GetScale() const;


			void SetOrigin( float theX, float theY );
			void SetOrigin( const Vector2f& theOrigin );
			Vector2f GetOrigin() const;

		protected:
			sf::Text text;
			const Font* font;
			friend class Window;
			friend class RenderImage;
	};
}

#endif // GDN_SFML_TEXT_H
